/**
 * 
 */
package co.com.unmasters.pokerbot.core;

import java.util.ArrayList;
import java.util.Random;

import co.com.unmasters.pokerbot.util.Logger;

/**
 * Clase para el manejo de la baraja
 * 
 * @author crodriguez
 */
public class Baraja {

    /**
     * Se crea la baraja
     * @author nanana
     */
    protected static final ArrayList<Carta> crearBaraja() {
        Logger.println(Baraja.class, "##Creaci�n de la Baraja", Logger.NIVEL_LOG_ESTADO);
        ArrayList<Carta> cartas = new ArrayList<Carta>();

        int id=0;
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 13; j++) {
                cartas.add(new Carta(id++, j, i));
            }
        }

        return cartas;
    }
    
    /**
     * Proceso de mezclar las cartas
     * @author nanana
     */
    protected static final ArrayList<Carta> barajar(final ArrayList<Carta> cartas) {
        Logger.println(Baraja.class, "##Mezclando la baraja", Logger.NIVEL_LOG_ESTADO);
        int i = 0;
        Random rnd = new Random();
        ArrayList<Carta> nuevaLista = new ArrayList<Carta>();
        
        while (cartas.size() > 0) {
            i = rnd.nextInt(cartas.size());
            nuevaLista.add(cartas.get(i));
            cartas.remove(i);
        }
        
        return nuevaLista;
    }
}
